package com.smxy.hunzi.user.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;


import com.smxy.hunzi.user.valid.group.Register;
import com.smxy.hunzi.user.valid.validannotation.NickNameValid;
import com.smxy.hunzi.user.valid.validannotation.PasswordValid;
import com.smxy.hunzi.user.valid.validannotation.SexValid;
import lombok.Data;
import org.hibernate.validator.constraints.URL;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Null;

/**
 * 用户信息表
 * 
 * @author litao
 * @email 4028546@qq.com
 * @date 2020-08-14 12:35:17
 */
@Data
@TableName("t_user")
public class UserEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键id
	 */
	@TableId
	@Null(message = "注册不能指定id",groups = Register.class)
	private Long id;
	/**
	 * 用户账号
	 */
	@NotBlank(message = "登陆账号不能为空",groups = Register.class)
	@Email(message = "登陆账号必须为邮箱格式",groups = Register.class)
	private String email;
	/**
	 * 用户登录密码
	 */

	@PasswordValid(message = "密码不能含有空格，且范围在6-16位之间", groups = Register.class)
	private String password;
	/**
	 * 用户昵称
	 */
	@NickNameValid(message = "昵称不能含有空格，且范围在1-7位之间",groups = Register.class)
	private String nickname;
	/**
	 * 联系方式
	 */

	//@NotBlank(message = "联系方式不能为空",groups = Register.class)
	private String phone;
	/**
	 * 用户性别
	 */
	@SexValid(message = "性别请选择'男'或'女'",vals = {"男","女"},groups = Register.class)
	private String sex;
	/**
	 * 用户头像
	 */
	@URL(message = "必须提供合法的头像地址",groups = Register.class)
	private String profilePhoto;
	/**
	 * 关注数（保留字段）
	 */

	private Integer focusOnCount;
	/**
	 * 收到的评论（保留字段）
	 */
	private Integer commentsCount;
	/**
	 * 权限字段，0表示无权限1表示有权限
	 */
	private Integer perms;
	/**
	 * 用户状态，0表示账号无异常，1表示不能评论但能发帖，2表示不能发帖不能评论
	 */
	private Integer userStatus;
	/**
	 * 显示状态
	 */
	@TableLogic
	private Integer showStatus;

}
